package com.jiaying.patient.view;

import com.jiaying.patient.dao.DoctorDao;
import com.jiaying.patient.domain.Doctor;

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
/**
医生登录窗体
*/
public class DoctorLoginView extends JFrame {
    //首先定义属性，其实是窗体内的组件
    private JPanel panel_main=null;//主面板
    private JPanel panel_left=null;//左面板
    private JPanel panel_right=null;//右面板

    //存放图片的标签信息
    private JLabel lb_img=null;
    private JLabel lb_doctorname=null;//医生姓名标签
    private JLabel lb_password=null;//医生密码标签
    //两个文本框
    private JTextField tf_doctorname=null;//医生姓名输入框
    private JTextField tf_password=null;//医生密码输入框
    //按钮
    private JButton btn_login=null;//登录按钮

    //定义依赖的Dao属性
    DoctorDao doctorDao=new DoctorDao();

    //初始化方法
    private void init(){
        panel_main=new JPanel();
        panel_left=new JPanel();
        panel_right=new JPanel(new GridLayout(3,2));//网格布局，如果不指定布局，那么默认流布局

        lb_img=new JLabel(new ImageIcon(ClassLoader.getSystemResource("images/c.jpg")));
        lb_doctorname=new JLabel("医生姓名：",JLabel.CENTER);
        lb_password=new JLabel("密     码：",JLabel.CENTER);

        tf_doctorname=new JTextField(10);
        tf_doctorname.setText("孙思邈");  // 这样就不用在登录界面输入数据了
        tf_password=new JTextField(10);
        tf_password.setText("123456");  // 这样就不用在登录界面输入数据了

        btn_login=new JButton("登录");

        //给登录按钮注册侦听器，以响应我们的点击操作
        btn_login.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
               // System.out.println("你干嘛点击我。。。。。。。。。。");
                //我们的目的是登录：拿着医生姓名和密码去数据库查询，查到了登录成功，否则失败
                System.out.println(tf_doctorname.getText());  //****
                System.out.println(tf_password.getText());    //****
                String name=tf_doctorname.getText();
                String password=tf_password.getText();

                //做非空校验
                if(name==null||"".equals(name)||password==null||"".equals(password)){
                    JOptionPane.showMessageDialog(DoctorLoginView.this,"医生姓名或者密码不能为空");
                    return;  //阻止代码继续往下运行
                }

                //  view--》controller---》Model（service）---》Dao
                //  view--》controller---》Dao
                Doctor doctor=new Doctor(name,password);
                Doctor query_result=doctorDao.selectDoctor(doctor);

                //做个判断
                if(query_result==null){
                    //登录失败
                    JOptionPane.showMessageDialog(DoctorLoginView.this,"医生姓名或者密码错误,登录失败");
                }else{
                    //登录成功
                    JOptionPane.showMessageDialog(DoctorLoginView.this,"登录成功");

                    //1.登录界面隐藏
                    DoctorLoginView.this.setVisible(false);  //不能直接用this

                    //2.实例化主界面
                    new DoctorMainView();
                }

            }
        });


        //接下来把组件放入窗体中
        //先左面板
        panel_left.add(lb_img);

        //然后右面板
        panel_right.add(lb_doctorname);
        panel_right.add(tf_doctorname);
        panel_right.add(lb_password);
        panel_right.add(tf_password);
        panel_right.add(btn_login);

        //然后总的面板
        panel_main.add(panel_left);
        panel_main.add(panel_right);

        //最后把总面板放入窗体中
        this.getContentPane().add(panel_main);

    }

    //构造方法，在里面做点小文章
    public DoctorLoginView(){

        init();  //必须

        this.setTitle("医生登录窗体"); //标题

        this.setSize(800,800);

        this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);//关闭操作

        this.setResizable(false);  //不能缩放

        this.setLocationRelativeTo(null); //居中

        this.setVisible(true);//显示
    }

}
